home *** CD-ROM | disk | FTP | other *** search
/ Gekkan Dennou Club 145 / Gekkan Dennou Club - 2000.6 Vol. 145 (Japan).7z / Gekkan Dennou Club - 2000.6 Vol. 145 (Japan) (Track 1).bin / tools / sharp / sxwork3.lzh / 福袋 / 注釈付ヘッダ / SXDEF2.H < prev    next >
Text File  |  1994-02-20  |  11KB  |  290 lines

  1. /*
  2.  * sxdef2.h X68k SX_SYSTEM ver 2.01 Copyright 1994 SHARP/First Class Technology
  3.  */
  4. #ifndef __SXDEF2_H
  5. #define __SXDEF2_H
  6.  
  7. #ifndef __CLASS_H
  8. typedef int        BOOLEAN;    /* 論理型(TRUEとFALSEの2値を扱う
  9.                        仮想の型)            */
  10. #endif
  11. typedef void        *Pointer;    /* ポインタ型(再配置不能ブロック)*/
  12. typedef void        **Handle;    /* ハンドル型(再配置可能ブロック)*/
  13. typedef long        LPoint;        /* ポイント形式            */
  14. typedef union Point    Point;        /* ポイントレコード        */
  15. typedef union Rect    Rect;        /* レクタングルレコード        */
  16. typedef struct Region    Region;        /* リージョンレコード        */
  17. typedef unsigned short    BitImg;        /* ビットイメージレコード    */
  18. typedef unsigned char    LASCII[256];    /* LASCII型            */
  19. typedef struct Bitmap    Bitmap;        /* ビットマップレコード        */
  20. typedef struct Graph    Graph;        /* グラフレコード        */
  21. typedef enum EventCode    EventCode;    /* イベントコード        */
  22. typedef struct Event    Event;        /* イベントレコード        */
  23. typedef struct Window    Window;        /* ウィンドウレコード        */
  24. typedef struct Subwin    Subwin;        /* サブウィンドウレコード    */
  25. typedef union TsEvent    TsEvent;    /* タスクマンイベントレコード    */
  26. /*
  27.  * 以下でTypedef宣言している構造体は、各マネージャのヘッダファイルで
  28.  * 実際のstruct宣言を行っています。利用の際は、必ずそのヘッダファイルを
  29.  * インクルードしてください。
  30.  */
  31. typedef struct Heap    Heap;        /* ヒープレコード        */
  32. typedef struct GScript    GScript;    /* グラフスクリプトレコード    */
  33. typedef struct Menu    Menu;        /* メニューレコード        */
  34. typedef struct Control    Control;    /* コントロールレコード        */
  35. typedef struct Dialog    Dialog;        /* ダイアログレコード        */
  36. typedef struct TEdit    TEdit;        /* テキストエディットレコード    */
  37.  
  38. #ifndef NULL
  39. #define NULL        ((void *) 0)    /* ヌルポインタ            */
  40. #endif
  41. #ifndef FALSE
  42. #define FALSE        0        /* 論理型の偽            */
  43. #endif
  44. #ifndef TRUE
  45. #define TRUE        1        /* 論理型の真            */
  46. #endif
  47. /*
  48.  * XC ver2.1では、可変長データを扱うための配列宣言は添字を省略する
  49.  */
  50. #ifndef _VARLEN
  51. #define _VARLEN
  52. #endif
  53.  
  54. #define HIBYTE(w)    ((long)(w) >> 8 & 0x000000ff)    /* 上位バイトを得る */
  55. #define LOWBYTE(w)    ((long)(w) & 0x000000ff)    /* 下位バイトを得る */
  56. #define HIWORD(l)    ((long)(l) >> 16 & 0x0000ffff)    /* 上位ワードを得る */
  57. #define LOWWORD(l)    ((long)(l) & 0x0000ffff)    /* 下位ワードを得る */
  58. #define LONGWORD(h,l)    ((long)(h) << 16 | LOWWORD(l))    /* ロングワードを得る */
  59. /*
  60.  *    メモリマン (Memory Man)
  61.  *
  62.  * ハンドル処理関数(MMChHdlNew、MMHdlDisposeなど)を利用し易くするため
  63.  * Handleを総称的なポインタ型void *に置き換えて関数プロトタイプを行う
  64.  */
  65. #ifndef _Handle
  66. #define _Handle        void *
  67. #endif
  68. /*
  69.  *    キーボードマン (Keyboard Man)
  70.  */
  71. /* シフトキービット */
  72. #define KS_SHIFT    1        /* [SHIFT]キー        */
  73. #define KS_CTRL        (1 << 1)    /* [CTRL]キー        */
  74. #define KS_OPT1        (1 << 2)    /* [OPT.1]キー        */
  75. #define KS_OPT2        (1 << 3)    /* [OPT.2]キー        */
  76. #define KS_KANA        (1 << 8)    /* [かな]キー        */
  77. #define KS_ROMEJI    (1 << 9)    /* [ローマ字]キー    */
  78. #define KS_CODEIN    (1 << 10)    /* [コード入力]キー    */
  79. #define KS_CAPS        (1 << 11)    /* [CAPS]キー        */
  80. #define KS_INS        (1 << 12)    /* [INS]キー        */
  81. #define KS_HIRA        (1 << 13)    /* [ひらがな]キー    */
  82. #define KS_ZEN        (1 << 14)    /* [全角]キー        */
  83. #define KS_XF1        (1 << 16)    /* [XF1]キー        */
  84. #define KS_XF2        (1 << 17)    /* [XF2]キー        */
  85. #define KS_XF3        (1 << 18)    /* [XF3]キー        */
  86. #define KS_XF4        (1 << 19)    /* [XF4]キー        */
  87. #define KS_XF5        (1 << 20)    /* [XF5]キー        */
  88. /*
  89.  *    グラフマン (Graph Man)
  90.  *
  91.  * 文字配列LASCIIを関数プロトタイプやキャストで利用し易くするため
  92.  * unsigned char *に置き換えて使う
  93.  */
  94. #ifndef _LASCII
  95. #define _LASCII        unsigned char *
  96. #endif
  97.  
  98. union Point {                /* ポイントレコード        */
  99.     struct {
  100.         short x;        /* x座標            */
  101.         short y;        /* y座標            */
  102.     } p;
  103.     LPoint x_y;            /* ポイント            */
  104. };
  105.  
  106. union Rect {                /* レクタングルレコード        */
  107.     struct {
  108.         short left;        /* 左上のポイントのx座標    */
  109.         short top;        /* 左上のポイントのy座標    */
  110.         short right;        /* 右下のポイントのx座標    */
  111.         short bottom;        /* 右下のポイントのy座標    */
  112.     } d;
  113.     struct {
  114.         LPoint l_t;        /* 左上のポイント        */
  115.         LPoint r_b;        /* 右下のポイント        */
  116.     } l;
  117. };
  118.  
  119. struct Region {                /* リージョンレコード        */
  120.     long size;            /* レコード全体のサイズ        */
  121.     Rect bounds;            /* バウンドレクタングル        */
  122.     short data[_VARLEN];        /* 1ラインのデータ(可変長データ)*/
  123. };
  124.  
  125. struct Bitmap {                /* ビットマップレコード        */
  126.     short type;            /* スクリーンタイプ        */
  127.     Rect rect;            /* ビットマップレクタングル    */
  128.     char *base;            /* ベースアドレス        */
  129.     short line;            /* 横1ラインのバイト数        */
  130.     union {
  131.         struct {
  132.             long page;    /* 1ページのバイト数        */
  133.             short aPage;    /* アクセスページ        */
  134.         } tbm;
  135.         unsigned short bRatio;    /* ブレンドウェイトレシオ    */
  136.     } opt;
  137. };
  138.  
  139. struct Graph {                /* グラフレコード        */
  140.     Bitmap *bmap;            /* ビットマップポインタ        */
  141.     Rect rect;            /* グラフレクタングル        */
  142.     long (**procs)();        /* プロセスポインタ        */
  143.     Region **visible;        /* ビジブルリージョンハンドル    */
  144.     Region **clipping;        /* クリップリージョンハンドル    */
  145.     short drawLvl;            /* ドローレベル            */
  146.     unsigned short penMode;        /* ペンモード            */
  147.     Point penLoc;            /* ペン位置            */
  148.     Point penSize;            /* ペンサイズ            */
  149.     BitImg *penPat;            /* ペンパターンへのポインタ    */
  150.     BitImg *exPat;            /* エクステンドパターンへのポインタ */
  151.     short workKind;            /* システム内部で使用        */
  152.     Handle workHdl;            /* システム内部で使用        */
  153.     unsigned short fgColor;        /* フォアグラウンドカラー    */
  154.     unsigned short bgColor;        /* バックグラウンドカラー    */
  155.     short fontKind;            /* フォントカインド        */
  156.     unsigned short fontFace;    /* フォントフェイス        */
  157.     unsigned short fontMode;    /* フォントモード        */
  158.     Point fontSize;            /* フォントサイズ        */
  159. };
  160. /*
  161.  *    イベントマン (Event Man)
  162.  */
  163. enum EventCode {            /* イベントコード        */
  164.     E_IDLE,                /* アイドルイベント        */
  165.     E_MSLDOWN,            /* マウスレフトダウンイベント    */
  166.     E_MSLUP,            /* マウスレフトアップイベント    */
  167.     E_MSRDOWN,            /* マウスライトダウンイベント    */
  168.     E_MSRUP,            /* マウスライトアップイベント    */
  169.     E_KEYDOWN,            /* キーダウンイベント        */
  170.     E_KEYUP,            /* キーアップイベント        */
  171.     E_UPDATE,            /* アップデートイベント        */
  172.     E_RESERVE1,            /* システム予約1        */
  173.     E_ACTIVATE,            /* アクティベートイベント    */
  174.     E_RESERVE2,            /* システム予約2        */
  175.     E_RESERVE3,            /* システム予約3        */
  176.     E_SYSTEM1,            /* システムイベント1        */
  177.     E_SYSTEM2,            /* システムイベント2        */
  178.     E_USER1,            /* ユーザーイベント1        */
  179.     E_USER2        /* 15 */    /* ユーザーイベント2        */
  180. };
  181.  
  182. /* イベントマスク */
  183. #define EM_IDLE        (1 << E_IDLE)      /* アイドルイベント        */
  184. #define EM_MSLDOWN    (1 << E_MSLDOWN)  /* マウスレフトダウンイベント    */
  185. #define EM_MSLUP    (1 << E_MSLUP)      /* マウスレフトアップイベント    */
  186. #define EM_MSRDOWN    (1 << E_MSRDOWN)  /* マウスライトダウンイベント    */
  187. #define EM_MSRUP    (1 << E_MSRUP)      /* マウスライトアップイベント    */
  188. #define EM_KEYDOWN    (1 << E_KEYDOWN)  /* キーダウンイベント        */
  189. #define EM_KEYUP    (1 << E_KEYUP)      /* キーアップイベント        */
  190. #define EM_UPDATE    (1 << E_UPDATE)      /* アップデートイベント    */
  191. #define EM_RESERVE1    (1 << E_RESERVE1) /* システム予約1        */
  192. #define EM_ACTIVATE    (1 << E_ACTIVATE) /* アクティベートイベント    */
  193. #define EM_RESERVE2    (1 << E_RESERVE2) /* システム予約2        */
  194. #define EM_RESERVE3    (1 << E_RESERVE3) /* システム予約3        */
  195. #define EM_SYSTEM1    (1 << E_SYSTEM1)  /* システムイベント1        */
  196. #define EM_SYSTEM2    (1 << E_SYSTEM2)  /* システムイベント2        */
  197. #define EM_USER1    (1 << E_USER1)      /* ユーザーイベント1        */
  198. #define EM_USER2    (1 << E_USER2)      /* ユーザーイベント2        */
  199. #define EM_EVERY    0xffff          /* すべてのイベント        */
  200.  
  201. struct Event {                /* イベントレコード        */
  202.     short what;            /* イベントコード        */
  203.     union {
  204.         Window *win;        /* ウィンドウポインタ        */
  205.         struct {
  206.             short code;    /* キーコード            */
  207.             short ascii;    /* ASCIIコード            */
  208.         } key;
  209.         long data;
  210.     } whom;                /* イベントメッセージ(共用体)    */
  211.     unsigned long when;        /* イベント発生時システム時刻    */
  212.     Point where;            /* イベント発生時のポインタ座標
  213.                        (グローバル座標系)        */
  214.     unsigned long how;        /* シフトキービット        */
  215. };
  216. /*
  217.  *    ウィンドウマン (Window Man)
  218.  */
  219. #define NONTITLE    (_LASCII)"\0"    /* タイトル無し            */
  220.  
  221. struct Window {                /* ウィンドウレコード        */
  222.     Graph graph;            /* グラフレコード        */
  223.     unsigned short kind;        /* ウィンドウの種類        */
  224.     char visible;            /* 可視フラグ            */
  225.     char hilite;            /* アクティブフラグ        */
  226.     char close;            /* クローズボタン使用フラグ    */
  227.     char status;            /* ウィンドウステータス        */
  228.     unsigned short option;        /* ウィンドウオプション        */
  229.     Region **outside;        /* アウトサイドリージョンハンドル */
  230.     Region **inside;        /* インサイドリージョンハンドル    */
  231.     Region **update;        /* アップデリートリージョンハンドル */
  232.     long (**def)();            /* ウィンドウ定義関数へのハンドル */
  233.     long defData;            /* ウィンドウ定義関数のデータ    */
  234.     LASCII **title;            /* ウィンドウタイトルへのハンドル */
  235.     unsigned short tWidth;        /* タイトルの幅            */
  236.     Control **control;        /* コントロールハンドル        */
  237.     Window *next;            /* 次のウィンドウポインタ    */
  238.     GScript **gScript;        /* ウィンドウスクリプトハンドル    */
  239.     long taskID;            /* タスクID            */
  240. };
  241. /*
  242.  *    サブウィンドウマン(Sub Window Man)
  243.  */
  244. /* サブウィンドウの各種システム標準値 */
  245. #define WS_INSIDE_X    1        /* インサイドリージョンの左上x座標 */
  246. #define WS_INSIDE_Y    18        /* インサイドリージョンの左上y座標 */
  247. #define WS_CLOSE_W    10        /* サブウィンドウ用クローズボタンの幅 */
  248.  
  249. struct Subwin {                /* サブウィンドウレコード    */
  250.     Window win;            /* ウィンドウレコード        */
  251.     unsigned long priority;        /* プライオリティ値        */
  252. };
  253. /*
  254.  *    コントロールマン (Control Man)
  255.  */
  256. /* 各コントロールの大きさ(システム標準値)*/
  257. #define CHRBTN_H    6        /* 文字ボタンの最小幅
  258.                        (+文字列の長さ)        */
  259. #define CHRBTN_V    19        /* 文字ボタンの高さ        */
  260. #define RADBTN_H    32        /* ラジオボタンの幅        */
  261. #define RADBTN_V    9        /* ラジオボタンの高さ        */
  262. #define CHKBOX_H    13        /* チェックボックスの幅        */
  263. #define CHKBOX_V    13        /* チェックボックスの高さ    */
  264. #define SLDVOL_H    14        /* スライドボリュームの最小幅
  265.                        (+スライドバーの長さ)    */
  266. #define SLDVOL_V    16        /* スライドボリュームの高さ    */
  267. #define ADJBTN_H    48        /* 数値調整ボタンの幅        */
  268. #define ADJBTN_V    18        /* 数値調整ボタンの高さ        */
  269. #define SCRLBR_H    18        /* スクロールバーの幅        */
  270. /*
  271.  *    タスクマン (Task Man)
  272.  */
  273. #define TS_NAMEMAX    90        /* タスクマンでのファイル名の最大長
  274.                        (この値は変更できません)    */
  275.  
  276. union TsEvent {                /* タスクマンイベントレコード    */
  277.     struct {
  278.         short what;        /* イベントコード        */
  279.         long whom;        /* 引数1            */
  280.         unsigned long when;    /* イベント発生システム時刻    */
  281.         long whom2;        /* 引数2            */
  282.         short what2;        /* タスクマンイベントコード/
  283.                        メッセージコード        */
  284.         short taskID;        /* 送り手のタスクID        */
  285.     } ts;
  286.     Event ev;            /* イベントレコード        */
  287. };
  288.  
  289. #endif __SXDEF2_H
  290.